package com.senlingspace.system.service;

import java.util.List;

import com.github.pagehelper.PageInfo;
import com.senlingspace.system.domain.SlkjShopProduct;
import com.senlingspace.system.domain.vo.ProductResponse;

/**
 * 门店商品状态Service接口
 *
 * @author SenlingSpace
 * @date 2024-07-30
 */
public interface ISlkjShopProductService {

    /**
     * 查询门店的商品列表 根据门店id和商品名和商品类型
     */
    List<ProductResponse> getProductsByShopAndName(Long shopId, String productName, Long productTpyeId, Long productId);

    /**
     * 查询门店商品状态
     *
     * @param id 门店商品状态主键
     * @return 门店商品状态
     */
    SlkjShopProduct selectSlkjShopProductById(Long id);

    /**
     * 查询门店商品状态列表
     *
     * @param slkjShopProduct 门店商品状态
     * @return 门店商品状态集合
     */
    public List<SlkjShopProduct> selectSlkjShopProductList(SlkjShopProduct slkjShopProduct);

    /**
     * 新增门店商品状态
     *
     * @param slkjShopProduct 门店商品状态
     * @return 结果
     */
    public int insertSlkjShopProduct(SlkjShopProduct slkjShopProduct);

    /**
     * 修改门店商品状态
     *
     * @param slkjShopProduct 门店商品状态
     * @return 结果
     */
    public int updateSlkjShopProduct(SlkjShopProduct slkjShopProduct);

    /**
     * 批量删除门店商品状态
     *
     * @param ids 需要删除的门店商品状态主键集合
     * @return 结果
     */
    public int deleteSlkjShopProductByIds(Long[] ids);

    /**
     * 删除门店商品状态信息
     *
     * @param id 门店商品状态主键
     * @return 结果
     */
    public int deleteSlkjShopProductById(Long id);

    /**
     * 根据门店id获取商品类型 list
     *
     * @param shopId
     * @return {@link List }<{@link ProductResponse }>
     */
    List<ProductResponse> getProductTypesByShopId(Long shopId);

    /**
     * 获取小程序商品类型 list
     *
     * @return {@link List }<{@link ProductResponse }>
     */
    List<ProductResponse> getWxProductTypes();

    /**
     * 小程序 商品列表
     *
     * @param productName
     * @param productTpyeId
     * @param productId
     * @param pageNum
     * @param pageSize
     * @return {@link List }<{@link ProductResponse }>
     */
    PageInfo<ProductResponse> getWxProductsByShopAndName(String productName, Long productTpyeId, Long productId, Integer pageNum, Integer pageSize);

}
